package game;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.util.ArrayList;


public class Jogador extends Sprite {
	

	int size = 0;
	float VelX = 0;
	float VelY =0;
	boolean onGround;
	boolean onAir;
	int oldPosi;
	ArrayList<Sprite> galinhas;
	float Xold;
	float Yold;
	float gravity = 1000f;
	
	public void StartJump(){
		if(this.onGround){
				this.VelY = -550.0f;
				this.onGround = false;
		}
		
	}
	
	public void EndJump(){
	    if(this.VelY < -350.0f){
	    	this.VelY = -350.0f;
	    }
	}
	
	public Jogador(BufferedImage bg, float x, float y, float tx, float ty) {
		super(bg, x, y, tx, ty);
		angle = 40;
		galinhas = new ArrayList<Sprite>();
		//galinhas.add(this);
	}

	private int mili = 0;
	@Override
	public void Simulase(long diffTime) {
		
		
		 Xold = X;
		 Yold = Y;
//		 if(!onGround){
//			 VelY += gravity*diffTime/1000.0f; 
//		 }
		 
		VelY += gravity*diffTime/1000;
		Y += VelY*diffTime/1000;
		if(Tela01.JUMP){
			if(VelY >= 0){
				gravity =250f;
			}
		}
		if(!Tela01.JUMP){
			if(VelY >= 0){
				gravity =1000f;
			}
		}
			
		
		VelX += -30f*diffTime/1000;
		X += VelX*diffTime/1000;
		//Y += VelY*diffTime/1000.0f;
		
		
		
		if(Colision(Tela01.plat)){
			oldPosi = (int)Y;
//			X = Xold;
			Y = Yold;
			VelY = 0;
			onGround = true;
			onAir = false;
			GamePanel.timejump= 0;
//			VelX = -VelX;
//			VelY = - VelY;
			
			
			
		}
		long tempoAnterior = System.currentTimeMillis();
		if(mili !=((int)(tempoAnterior/100))){
			
			mili = (int)(tempoAnterior/100);
			Move();
			
			
		}
		
		
			
	}
	@Override
	 public void Desenha(Graphics2D dbg) {
		super.Desenha(dbg);
		for(int i = 0; i< galinhas.size(); i++){
			Galinhas tmp = (Galinhas) galinhas.get(i);
			tmp.Desenha(dbg);
		}
		
	};
		
	public void NewChicken(){
		if(galinhas.isEmpty()){
			Galinhas tmp = new Galinhas(Tela01.bquadrado, this.X - 64, this.Y-20, this.TX, this.TY) ;	
			galinhas.add(tmp);
		}else{
			Galinhas coco = (Galinhas) galinhas.get(galinhas.size()-1);
			Galinhas tmp = new Galinhas(Tela01.bquadrado, coco.X - 64, coco.Y-20, this.TX, this.TY) ;	
			galinhas.add(tmp);
		}
		
			
	
		
	}
	
	private void Move(){
		//System.out.println( galinhas.size());
		for(int i = galinhas.size()-1; i == 0; i--){
		//for(int i = 0; i < galinhas.size(); i++){
			
			Galinhas tmp = (Galinhas) galinhas.get(i);
				if(i == 0){
					//tmp.X = this.Xold;
					//System.out.println("fsds");
					tmp.Y = this.Yold;
				}else{
					//System.out.println("2");
					tmp.Y = galinhas.get(i-1).Y;
				}
			//
		}
	}

	
	
	
	
	
}
